diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html
index 9c679c9..b850418 100644
--- a/user_guide/database/configuration.html
+++ b/user_guide/database/configuration.html
@@ -1,140 +1 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
-<head>
-
-<title>CodeIgniter User Guide : Database Configuration</title>
-
-<style type='text/css' media='all'>@import url('../userguide.css');</style>
-<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
-
-<script type="text/javascript" src="../nav/nav.js"></script>
-<script type="text/javascript" src="../nav/prototype.lite.js"></script>
-<script type="text/javascript" src="../nav/moo.fx.js"></script>
-<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
-
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv='expires' content='-1' />
-<meta http-equiv= 'pragma' content='no-cache' />
-<meta name='robots' content='all' />
-<meta name='author' content='Rick Ellis' />
-<meta name='description' content='CodeIgniter User Guide' />
-
-</head>
-<body>
-
-<!-- START NAVIGATION -->
-<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
-<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
-<div id="masthead">
-<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
-<tr>
-<td><h1>CodeIgniter User Guide Version 1.5.4</h1></td>
-<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
-</tr>
-</table>
-</div>
-<!-- END NAVIGATION -->
-
-
-<!-- START BREADCRUMB -->
-<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
-<tr>
-<td id="breadcrumb">
-<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
-<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
-<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
-Configuration
-</td>
-<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
-</tr>
-</table>
-<!-- END BREADCRUMB -->
-
-
-<br clear="all" />
-
-
-<!-- START CONTENT -->
-<div id="content">
-
-
-<h1>Database Configuration</h1>
-
-<p>CodeIgniter has a config file that lets you store your database connection values (username, password, database name, etc.).
-The config file is located at:</p>
-
-<p><kbd>application/config/database.php</kbd></p>
-
-<p>The config settings are stored in a multi-dimensional array with this prototype:</p>
-
-<code>$db['default']['hostname'] = "localhost";<br />
-$db['default']['username'] = "root";<br />
-$db['default']['password'] = "";<br />
-$db['default']['database'] = "database_name";<br />
-$db['default']['dbdriver'] = "mysql";<br />
-$db['default']['dbprefix'] = "";<br />
-$db['default']['pconnect'] = TRUE;<br />
-$db['default']['db_debug'] = FALSE;<br />
-$db['default']['active_r'] = TRUE;</code>
-
-<p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally store
-multiple sets of connection values.  If, for example,  you run multiple environments (development, production, test, etc.)
-under a single installation, you can set up a connection group for each, then switch between groups as needed.
-For example, to set up a "test" environment you would do this:</p>
-
-<code>$db['test']['hostname'] = "localhost";<br />
-$db['test']['username'] = "root";<br />
-$db['test']['password'] = "";<br />
-$db['test']['database'] = "database_name";<br />
-$db['test']['dbdriver'] = "mysql";<br />
-$db['test']['dbprefix'] = "";<br />
-$db['test']['pconnect'] = TRUE;<br />
-$db['test']['db_debug'] = FALSE;<br />
-$db['test']['active_r'] = TRUE;</code>
-
-
-<p>Then, to globally tell the system to use that group you would set this variable located in the config file:</p>
-
-<code>$active_group = "test";</code>
-
-<p>Note: The name "test" is arbitrary.  It can be anything you want. By default we've used the word "default"
-for the primary connection, but it too can be renamed to something more relevant to your project.</p>
-
-<h3>Explanation of Values:</h3>
-
-<ul>
-<li><strong>hostname</strong> - The hostname of your database server. Often this is "localhost".</li>
-<li><strong>username</strong> - The username used to connect to the database.</li>
-<li><strong>password</strong> - The password used to connect to the database.</li>
-<li><strong>database</strong> - The name of the database you want to connect to.</li>
-<li><strong>dbdriver</strong> - The database type. ie: mysql, postgre, obdc, etc. Must be specified in lower case.</li>
-<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries.  This permits multiple CodeIgniter installations to share one database.</li>
-<li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li>
-<li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li>
-<li><strong>active_r</strong> - TRUE/FALSE (boolean) - Whether to load the <a href="active_record.html">Active Record Class</a>. If you are not using the active record class you can have it omitted when the database classes are initialized in order to utilize less resources.</li>
-<li><strong>port</strong> - The database port number.  Currently only used with the Postgre driver.</li>
-</ul>
-
-<p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgre, etc.)
-not all values will be needed.  For example, when using SQLite you will not need to supply a username or password, and
-the database name will be the path to your database file. The information above assumes you are using MySQL.</p>
-
-
-
-</div>
-<!-- END CONTENT -->
-
-
-<div id="footer">
-<p>
-Previous Topic:&nbsp;&nbsp;<a href="examples.html">Quck Start: Usage Examples</a>
-&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
-<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
-<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
-Next Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a>
-</p>
-<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
-</div>
-
-</body>
-</html>
\ No newline at end of file
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>CodeIgniter User Guide : Database Configuration</title><style type='text/css' media='all'>@import url('../userguide.css');</style><link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /><script type="text/javascript" src="../nav/nav.js"></script><script type="text/javascript" src="../nav/prototype.lite.js"></script><script type="text/javascript" src="../nav/moo.fx.js"></script><script type="text/javascript" src="../nav/user_guide_menu.js"></script><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv='expires' content='-1' /><meta http-equiv= 'pragma' content='no-cache' /><meta name='robots' content='all' /><meta name='author' content='Rick Ellis' /><meta name='description' content='CodeIgniter User Guide' /></head><body><!-- START NAVIGATION --><div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div><div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div><div id="masthead"><table cellpadding="0" cellspacing="0" border="0" style="width:100%"><tr><td><h1>CodeIgniter User Guide Version 1.5.4</h1></td><td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td></tr></table></div><!-- END NAVIGATION --><!-- START BREADCRUMB --><table cellpadding="0" cellspacing="0" border="0" style="width:100%"><tr><td id="breadcrumb"><a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;Configuration</td><td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td></tr></table><!-- END BREADCRUMB --><br clear="all" /><!-- START CONTENT --><div id="content"><h1>Database Configuration</h1><p>CodeIgniter has a config file that lets you store your database connection values (username, password, database name, etc.).The config file is located at:</p><p><kbd>application/config/database.php</kbd></p><p>The config settings are stored in a multi-dimensional array with this prototype:</p><code>$db['default']['hostname'] = "localhost";<br />$db['default']['username'] = "root";<br />$db['default']['password'] = "";<br />$db['default']['database'] = "database_name";<br />$db['default']['dbdriver'] = "mysql";<br />$db['default']['dbprefix'] = "";<br />$db['default']['pconnect'] = TRUE;<br />$db['default']['db_debug'] = FALSE;<br />$db['default']['active_r'] = TRUE;</code><p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally storemultiple sets of connection values.  If, for example,  you run multiple environments (development, production, test, etc.)under a single installation, you can set up a connection group for each, then switch between groups as needed.For example, to set up a "test" environment you would do this:</p><code>$db['test']['hostname'] = "localhost";<br />$db['test']['username'] = "root";<br />$db['test']['password'] = "";<br />$db['test']['database'] = "database_name";<br />$db['test']['dbdriver'] = "mysql";<br />$db['test']['dbprefix'] = "";<br />$db['test']['pconnect'] = TRUE;<br />$db['test']['db_debug'] = FALSE;<br />$db['test']['active_r'] = TRUE;</code><p>Then, to globally tell the system to use that group you would set this variable located in the config file:</p><code>$active_group = "test";</code><p>Note: The name "test" is arbitrary.  It can be anything you want. By default we've used the word "default"for the primary connection, but it too can be renamed to something more relevant to your project.</p><h3>Explanation of Values:</h3><ul><li><strong>hostname</strong> - The hostname of your database server. Often this is "localhost".</li><li><strong>username</strong> - The username used to connect to the database.</li><li><strong>password</strong> - The password used to connect to the database.</li><li><strong>database</strong> - The name of the database you want to connect to.</li><li><strong>dbdriver</strong> - The database type. ie: mysql, postgre, obdc, etc. Must be specified in lower case.</li><li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries.  This permits multiple CodeIgniter installations to share one database.</li><li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li><li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li><li><strong>active_r</strong> - TRUE/FALSE (boolean) - Whether to load the <a href="active_record.html">Active Record Class</a>. If you are not using the active record class you can have it omitted when the database classes are initialized in order to utilize less resources.<p class="important"><strong>Note:</strong> that some CodeIgniter classes such as Sessions require Active Records be enabled to access certain functionality.</p></li><li><strong>port</strong> - The database port number.  Currently only used with the Postgre driver.</li></ul><p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgre, etc.)not all values will be needed.  For example, when using SQLite you will not need to supply a username or password, andthe database name will be the path to your database file. The information above assumes you are using MySQL.</p></div><!-- END CONTENT --><div id="footer"><p>Previous Topic:&nbsp;&nbsp;<a href="examples.html">Quck Start: Usage Examples</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;Next Topic:&nbsp;&nbsp;<a href="connecting.html">Connecting to your Database</a></p><p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p></div></body></html>
\ No newline at end of file
